﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PSE.Framework.UI.Settings
{
    /// <summary>
    /// Interface dos objetos que contém configurações
    /// </summary>
    public interface IConfigurationObject<TConfigurationObjectType>
        where TConfigurationObjectType : struct
    {
        /// <summary>
        /// Nome do objeto de configuração
        /// </summary>
        string ConfigurationName { get; set; }

        /// <summary>
        /// Tipo do objeto de configuração, sendo que este tipo é definido através de um enum.
        /// Este tipo é útil para que o Provider possa executar ações específicas demandadas 
        /// por determinados objetos de configuração. Por exemplo, o tipo define a subpasta
        /// onde as configurações do objeto de configuração são salvas.
        /// </summary>
        TConfigurationObjectType ConfigurationType { get; set; }
    }
}
